#ifndef PHONELOGINWIDGET_H
#define PHONELOGINWIDGET_H

#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include "model/datacenter.h"
#include "verifycodewidget.h"
#include "toast.h"
#include "mainwidget.h"


class LoginWidget;
class PhoneLoginWidget : public QWidget
{
    Q_OBJECT
public:
    PhoneLoginWidget(QWidget *parent = nullptr);

private:

    //是否为登陆窗口
    bool isLoginMode;

    //切换登陆/注册窗口
    void switchMode();

    //切换到用户名登陆窗口
    void switchToUsername();

    ///////////////////////////////////////////////////////////////////
    /// 验证码逻辑
    ///////////////////////////////////////////////////////////////////
    //点击发送验证码
    void clickSendVerifyCodeBtn();
    //验证码发送后的逻辑处理
    void sendVerifyCodeDone();
    //倒计时逻辑
    void countDown();

    ///////////////////////////////////////////////////////////////////
    /// 电话号登录/注册逻辑
    ///////////////////////////////////////////////////////////////////
    //点击提交按钮的逻辑
    void clickSubmitBtn();
    //区分提交网络请求后, 登录是否成功
    void phoneLoginDone(bool ok, const QString& reason);
    //区分提交网络请求后, 注册是否成功
    void phoneRegisterDone(bool ok, const QString& reason);



    //控件相关
    QLabel* tipLabel; //标题
    QLineEdit* phoneEdit; // 手机号
    QLineEdit* verifyCodeEdit; //验证码
    QPushButton* sendVerifyCodeBtn; //发送

    QPushButton* submitBtn; //提交
    QPushButton* userModeBtn; //切换到用户密码窗口
    QPushButton* switchModeBtn; //切换登录与注册

    //逻辑相关
    QString currentPhone;
    QTimer* timer;
    int count = 0;


signals:
};

#endif // PHONELOGINWIDGET_H








